/*
* Copyright (c) 2016.2，华乘电气科技有限公司
* All rights reserved.
*
* 文件名称：AesCrypto.h
*
* 初始版本：1.0
* 作者：
* 创建日期：2016年2月26日
* 摘要：该文件主要是定义基于AES的加密模块
*
*/
#ifndef AESCRYPTO_H
#define AESCRYPTO_H
#include <QByteArray>

#include "Rijndael.h"
#include "crypto_global.h"
/**
 *该类实现加密解密
 */
class CRYPTOSHARED_EXPORT AesCrypto
{
private:
    CRijndael crijndael;
public:
    /************************************************
     * 函数名    :AesCrypto
     * 输入参数  ：
     *      baKey -- 密钥
     * 输出参数  ：NULL
     * 返回值   ：NULL
     * 功能     ：构造函数
     ************************************************/
    AesCrypto( QByteArray baKey );

    /************************************************
     * 函数名    :enCrypt
     * 输入参数  ：
     *      data -- 需要加密的数据
     * 输出参数  ：NULL
     * 返回值   ：
     *      加密后的数据
     * 功能     ：加密
     ************************************************/
    QByteArray enCrypt( const QByteArray& data );

    /************************************************
     * 函数名    :deCrypt
     * 输入参数  ：
     *      data -- 需要解密的数据
     * 输出参数  ：NULL
     * 返回值   ：
     *      解密后的数据
     * 功能     ：解密
     ************************************************/
    QByteArray deCrypt( const QByteArray& data );
};

#endif // AESTOOLS_H
